Manages the shaders available in the component. More...
Public Member Functions | |
~ShaderManager () | |
Shader * | createOrRetrieve (const nkMemory::StringView &name) |
Shader * | get (const nkMemory::StringView &name) |
Shader * | getByIndex (unsigned int index) |
void | rename (const nkMemory::StringView &oldName, const nkMemory::StringView &newName) |
void | erase (const nkMemory::StringView &name) |
Static Public Attributes | |
static const nkMemory::StringView | DEFAULT_EMPTY_SHADER = "NILKINS_EMPTY_SHADER" |
Default empty shader name. | |
static const nkMemory::StringView | DEFAULT_POSITION_SHADER = "NILKINS_POSITION_SHADER" |
Default position shader name. | |
static const nkMemory::StringView | DEFAULT_UV_SHADER = "NILKINS_UV_SHADER" |
Default UV shader name. | |
static const nkMemory::StringView | DEFAULT_NORMAL_SHADER = "NILKINS_NORMAL_SHADER" |
Default normal shader name. | |
static const nkMemory::StringView | DEFAULT_UV_NORMAL_SHADER = "NILKINS_UV_NORMAL_SHADER" |
Default normal + UV shader name. | |
Manages the shaders available in the component.
The manager is responsible for the allocated memory it returns. External code should never delete returned memory.
nkGraphics::ShaderManager::~ShaderManager | ( | ) |
Destructor.
Shader* nkGraphics::ShaderManager::createOrRetrieve | ( | const nkMemory::StringView & | name | ) |
Creates if unavailable, or retrieve if available, a shader.
name | The name of the shader to retrieve. |
Shader* nkGraphics::ShaderManager::get | ( | const nkMemory::StringView & | name | ) |
Retrieves an existing shader.
name | The name of the shader to retrieve. |
Shader* nkGraphics::ShaderManager::getByIndex | ( | unsigned int | index | ) |
Retrieves a shader by index. Note that an index can point to different shaders as the memory of the manager is changed. Useful to loop over all available shaders in one go.
index | The index of the shader to retrieve. |
void nkGraphics::ShaderManager::rename | ( | const nkMemory::StringView & | oldName, |
const nkMemory::StringView & | newName | ||
) |
Renames a shader, changing both its name and the way to find it in the manager.
oldName | The name of the shader to alter. |
newName | The new name to assign. |
void nkGraphics::ShaderManager::erase | ( | const nkMemory::StringView & | name | ) |
Erases a shader and frees its memory.
name | The name of the shader to erase. |